#ifndef _HEADBOSS_H
#define _HEADBOSS_H
 
#include "Object.h"
#include "HeadBossWeapon.h"

#define HEADBOSS_VX	0.1
#define HEADBOSS_VY	0.1

#define HEADBOSS_DISTANCE_X	100
#define HEADBOSS_DISTANCE_Y	10
 

/************************************************************************/
/* BatBoss Class                                                        */
/************************************************************************/

class HeadBoss : public Object
{
private:
	 
	float count_time;
	float time_die;			//tinh thoi gian chet

	Sprite* p_light;

	//new
	bool is_collission;		//kiem tra va cham voi simon
	bool is_go_point1;		//kiem tra co quay ve point 1 hay chua?

	int distance_x, distance_y;		//khoang cach tien ve simon hoac ra xa
	float _x_point1, _y_point1;		//diem tro ve point 1
	float _x_point2, _y_point2;		//diem tro ve point 2

	HeadBossWeapon *p_weapon;

	//Direct
	LPDIRECT3DDEVICE9 d3ddv;
	LPDIRECT3DSURFACE9 BackBuffer;
	LPD3DXSPRITE SpriteHandler;

public:
	/*
	 *	get/set properties
	 */
	OBJECT_TYPE getObjectType();

	/*
	 *	Constructor/Destructor
	 */	
	HeadBoss(LPDIRECT3DDEVICE9 d3ddv,  LPDIRECT3DSURFACE9 BackBuffer, LPD3DXSPRITE SpriteHandler, float x, float y, int ID, int Object_State, int Direction);	
	~HeadBoss();

	/*
	 *	Method
	 */	
  	void move(list<Object*>* obj_list, float TPF, Object* simon);	
	void update(list<Object*>* obj_list, DxInput* input, float TPF, Object* simon);

	void render(int cameraX, int cameraY);
	void changeState(int state);
};

#endif